﻿using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Linq;
using STS.Model;

namespace STS.ViewModel
{
    public class DanePacjentowViewModel : BaseViewModel
    {
        private DanePacjentow _danePacjentowItem;
        public DanePacjentow DanePacjentowItem
        {
            get 
            {
                if (_danePacjentowItem == null)
                {
                    _danePacjentowItem = new DanePacjentow();
                }
                return _danePacjentowItem; 
            }
            set
            {
                _danePacjentowItem = value;
                NotifyPropertyChanged("DanePacjentowItem");
            }
        }

        public DanePacjentow GetDanePacjentow()
        {
            var danePacjentowDB = from DanePacjentow danePacjentow in ModelInstance.DataContext.DanePacjentowItem
                                  select danePacjentow;

            return danePacjentowDB.SingleOrDefault<DanePacjentow>();
        }

        public void UpdateDanePacjentow(DanePacjentow updatedDanePacjentow)
        {
            DanePacjentow old = GetDanePacjentow();
            SetEntityPropertities(ref old, updatedDanePacjentow);
            DanePacjentowItem = updatedDanePacjentow;
            SaveChangesToDB();
        }

        public void AddDanePacjentow(DanePacjentow dp, DaneLekarzy dl, Osrodek osr)
        {
            ModelInstance.DaneLekarzyViewModel.AddDaneLekarzy(dl);
            ModelInstance.OsrodekViewModel.AddOsrodek(osr);

            ModelInstance.DataContext.DanePacjentowItem.InsertOnSubmit(dp);
            SaveChangesToDB();
            DanePacjentowItem = dp;
        }

    }
}
